#!/bin/bash

set -e

echo "🚀 初始化 Flutter Git 仓库并配置 Git LFS（大于 10MB 的非忽略文件）..."

# 检查 git 和 git-lfs 是否安装
command -v git >/dev/null || { echo "❌ Git 未安装"; exit 1; }
command -v git-lfs >/dev/null || { echo "❌ Git LFS 未安装，请执行：brew install git-lfs"; exit 1; }

# 初始化 Git 仓库（如果不存在）
if [ ! -d .git ]; then
  git init
  echo "✅ 初始化 .git 仓库"
fi

# 初始化 Git LFS
git lfs install
echo "✅ Git LFS 启用完成"

# 检查是否已有 .gitignore，否则创建推荐内容
if [ ! -f .gitignore ]; then
  echo "📄 创建 Flutter 默认 .gitignore"
  cat <<EOL > .gitignore
# Flutter
build/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.idea/
.vscode/
*.iml
EOL
fi

# 查找所有大于 10MB 且不被忽略的文件
echo "🔍 查找大于 10MB 且未被 .gitignore 忽略的文件..."
LARGE_FILES=$(find . -type f -size +10M ! -path "./.git/*")

for file in $LARGE_FILES; do
  # 跳过 .gitignore 忽略的文件
  if git check-ignore -q "$file"; then
    echo "⏩ 跳过（被忽略）: $file"
    continue
  fi
  # 添加 LFS 跟踪
  git lfs track "$file"
  echo "👉 LFS 跟踪: $file"
done

# 如果有 .gitattributes 更新，添加它
[ -f .gitattributes ] && git add .gitattributes

# 添加项目文件
# git add .
# git commit -m "🌟 初始化项目并配置 Git LFS 跟踪大文件（>10MB）"

# echo "✅ 完成初始化，可手动添加 remote 并 push 到 GitHub"
